/**
 * @ Authors:
 * 
 * @Veronique De Laet
 * @Johan Willems
 * 
 * @version 2011
 */

package model;
import model.AangebodenCursus;

public class OpenAangebodenCursusState extends AangebodenCursusState {

	private AangebodenCursus aangebodenCursus;
	
	 public OpenAangebodenCursusState(AangebodenCursus aangebodenCursus)
	    {
	       this.aangebodenCursus = aangebodenCursus;
	    }
	
	@Override
	public void annuleerCursus() 
	{
		aangebodenCursus.setState(aangebodenCursus.getGeannuleerdAangebodenCursusState());	
	}

	@Override
	public void afsluitenInschrijving() {
		if(aangebodenCursus.aantalInschrijvingen(aangebodenCursus) < aangebodenCursus.getMinAantalPlaatsen())
		{
		aangebodenCursus.setState(aangebodenCursus.getGeannuleerdAangebodenCursusState());
		}
		else if (aangebodenCursus.aantalInschrijvingen(aangebodenCursus) >= aangebodenCursus.getMinAantalPlaatsen())
		{
			aangebodenCursus.setState(aangebodenCursus.getAfgeslotenAangebodenCursusState());
		}
	}

	@Override
	public void uitschrijvenStudent() {
		if(aangebodenCursus.aantalInschrijvingen(aangebodenCursus) > aangebodenCursus.getMinAantalPlaatsen())
		{
			aangebodenCursus.setState(aangebodenCursus.getOpenAangebodenCursusState());
		}	
	}

	@Override
	public void inschrijvenStudent()
	{
	    if (aangebodenCursus.aantalInschrijvingen(aangebodenCursus) < aangebodenCursus.getAantalPlaatsen())
		{
			aangebodenCursus.setState(aangebodenCursus.getOpenAangebodenCursusState());
		}
	}
}
